In order to meet a plurality of clients need certain source content can be encoded at multiple bit rates. In addition, each of the different bit rate streams can be divided into two or more corresponding segments. The two or more streams are associated with different video qualities. The video quality could be expressed in frame rate, resolution or other parameters.
Usually the plurality of compressed streams of the same media is used in order to correspond to the user's bandwidth and the capabilities of the user's device. Corresponding segments carries the same media content but are compressed in different bitrate. Thus, a client device can switch from one stream to another at a beginning of a segment while keeping the continuity of the rendered content. The only different is the quality of the encoding/decoding. Along the current disclosure and the claims the term “media” is used as representative term for audio and video or audio only or video only.
The streaming client is made aware of the available streams at differing bit rates, and segments of the streams by a manifest file. During rendering a Multi-layered-adaptive BR (MLABR) media, a player may switch from one stream to another based on available bandwidth, available media buffered inside the player and other factors. A reader who wishes to learn more about MLABR technology is invited to read video streaming protocol such as but not limited to HTTP Live Streaming (HLS) protocol or DASH (Dynamic Adaptive Streaming over HTTP), for example. HLS is an HTTP based media streaming communication protocol. The content of DASH and HLS protocol is incorporated herein by reference. Along the disclosure and the claims the terms user device, client, or player can be used interchangeably.
At the beginning of some streaming sessions, a description file can be sent by the relevant server toward the client. For HLS stream, the description file can be M3U or M3U8, for example. For DASH, the manifest file is MPD. Along the disclosure and the claims the terms description file or manifest file can be used interchangeably. By parsing the obtained description file the player is introduced to the DASH available streams having different parameters, such as bitrate for example, and one or more segments lists. The player may choose to use a segment which belongs to a specific stream/bitrate according to the available media buffering and other parameters. Along the present disclosure the term session can be used as representative term for a ML (multi-level) streaming session.
There are several methods for associating two or more connections that carry data of the same session. Packets related to the same session might have the same source and destination IP address. Thus, parsing the source and destination IP address can be used for sorting the packets to a session. Alternatively a session ID, which is sent with the data can be used for sorting the packets to a session.
The manifest file or files describe the segments and their locations and optionally the different bitrates, codecs or any other assisting information. The manifest file or files can be sent prior to the compressed media or during the media streaming operation.
Streamed compressed media can be encrypted. The encryption can be in several levels. In some sessions the media itself is encrypted while the transport is not. In other sessions, the transport layer (HTTPS for example) is encrypted. The transport layer of streams that are carried over a TLS connection can be encrypted, for example. TLS stands for Transport Layer Security. The term “encrypted media” can be used as a representative term for both encryption options.
Further, media streaming usually consumes large amount of the bandwidth, which affect the available bandwidth for other clients that share the same resources. Consequently an operator of the transport network can appreciate the option to control the amount of bandwidth that is consumed during the streaming of the media. A cellular operator, for example, will appreciate the possibility to control the consumed bandwidth that is used by a single user in order to release bandwidth to other users.
However, controlling the consumed bandwidth of a current Streamed session by an intermediate node or server is complicated. The intermediate node is not aware of the encryption keys that are used for encrypting/decrypting the current session. Thus, an intermediate node cannot decrypt the compressed media and transcode it to a lower bit rate.